The present invention relates to the field of software applications generally, and specifically to the implementation of financial applications. Enterprise businesses store large amounts of financial data in relational databases and analysis models in spreadsheet programs, like Microsoft Excel. Enterprise business often need to analyze the data in their database. Financial models are widely used in businesses to evaluate business transactions, project feasibility, management decisions, and potential sales or purchases.
One standard technique for performing data analysis is to import data from a relational database into a spreadsheet to create analytical models and reports. Spreadsheet applications are relatively simple to learn and are widely used by businesspeople for a variety of applications. Despite their advantages, spreadsheet-based financial models have numerous limitations:    Data may change in the relational database due to transactions. Each time data in the database changes, the data must be reimported to spreadsheet so that the model reflects the new data. Additionally, the financial data often needs to be transformed or summarized from its from its native form in the database into a format used by the spreadsheet model. This process of transforming and importing is not only time consuming but often requires additional programming.    Spreadsheet programs typically have a limit on the amount of data that can be imported and manipulated. For instance, Microsoft Excel only allows 65535 rows of data. This is far smaller than the amount of data that may potentially reside in a relational database table, which can have millions of rows of data. For large data sets, users cannot operate spreadsheet models directly on raw transactional data.    There is no centralized repository for models, so spreadsheets may be segmented and isolated throughout a company. They may be lying around on file servers, local disks, emails, etc and they are difficult to manage. There is no way to separate out the logic in terms of the computational model of the spreadsheet represented by formulas from its data content.    There are no programs that automatically map the free-form spreadsheet view of data into the more structured format of a relational database.    Model designers have no control over users changing the computation model.    Each user of a spreadsheet model must have their own licensed copy of the spreadsheet application, making it very expensive to deploy models to a large number of users.
To combat these problems, analysis tools have been created that allow users to model analyses on relation databases, outside of a spreadsheet program. However, this requires a user to learn to use a new tool which is much more complex than a spreadsheet.
It is desirable to develop a system for creating financial models that combines the ease of use of spreadsheet-based models with the full capabilities of a relational database. It is further desirable for the resulting model to be able to be rapidly and inexpensively distributed to model users and to store model data values for analysis by managers and model designers.